package com.forest.gissingle.dialog;


import com.forest.gissingle.GisApplicationis;
import com.forest.gissingle.interfaces.IDialog;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.WindowManager;

/**
 * Dialog父类
 * 
 * @author lgl
 * @version 1.0
 */
public class MDialog extends Dialog {

	public IDialog iDialog;
	WindowManager.LayoutParams params;
	int layoutId;

	private static final float WIDTH_OF_SCREEN = 0.9f;

	public MDialog(Context context) {
		super(context);
	}

	public MDialog(Context context, int theme, int layoutId) {
		super(context, theme);
		this.layoutId = layoutId;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setCanceledOnTouchOutside(true);

		setContentView(layoutId);
		iDialog.initView();
		iDialog.setListener();
		iDialog.resume();

		params = getWindow().getAttributes();
		setWidthOfScreen(WIDTH_OF_SCREEN);

		iDialog.resize();
	}

	/**
	 * 直接指定对话框的宽度
	 * 
	 * @param width
	 */
	public void setWidth(int width) {
		params.width = width;
	}

	/**
	 * 直接指定对话框的高度
	 * 
	 * @param width
	 */
	public void setHeight(int height) {
		params.height = height;
	}

	/**
	 * 已设置默认为屏幕宽度的0.9倍 若需要其他倍数，直接再调用此方法设置
	 * 
	 * @param f
	 *            屏幕宽度的倍数 范围：0.0～1.0
	 */
	public void setWidthOfScreen(float f) {

		params.width = (int) (GisApplicationis.getScreenWidth() * f);
	}

	/**
	 * 未使用该方法时，对话框的高度默认是自适应 建议在对话框内容较多时才使用该方法
	 * 
	 * @param f
	 *            屏幕高度的倍数 范围：0.0～1.0
	 */
	public void setHeightOfScreen(float f) {
		params.height = (int) (GisApplicationis.getScreenHeight() * f);
	}
}
